package com.ztgf.order.models.service.pay;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.ztgf.common.constant.Result;
import com.ztgf.order.models.bo.pay.PayOrderLogBO;
import com.ztgf.order.models.bo.pay.PayOrderLogSaveBO;
import com.ztgf.order.models.bo.pay.PayOrderSaveBO;
import com.ztgf.order.models.dto.OrderInfoDTO;
import com.ztgf.order.models.dto.OrderPayRelationDTO;
import com.ztgf.order.models.dto.OrderReturnCommodityDTO;
import com.ztgf.order.models.dto.OrderStatusDTO;
import com.ztgf.order.models.dto.pay.PayOrderLogDTO;
import com.ztgf.order.models.vo.pay.PayOrderLogVO;
import com.ztgf.order.models.vo.pay.PayOrderMoneyVO;
import com.ztgf.order.models.vo.pay.PayOrderVO;
import com.ztgf.pay.models.dto.PayOrderDTO;
import com.ztgf.shopping.models.dto.shop.ShopEarnestMoneyDTO;

import java.math.BigDecimal;

/**
 * 支付日志表服务
 *
 * @author mxli
 * @Date 2021-06-03 16:12:28
 */
public interface IPayLogisticsService {

    /**
     * 缴纳物流保证金
     * @param bo id传shopId
     * @param payOrderVO
     * @param userId
     * @param userName
     */
    void saveLogisticsPayMargin(PayOrderSaveBO bo, PayOrderVO payOrderVO, Long shopId, Long userId, String userName);

    /**
     * 解冻物流保证金
     * @param shopId
     * @param userId
     * @param userName
     */
    void saveLogisticsUnfreezeMarginMoney(Long shopId, BigDecimal money, Long userId, String userName);

    /**
     * 扣除物流保证金
     * @param shopId
     * @param money
     * @param userId
     * @param userName
     */
    void saveLogisticsDeductMargin(Long shopId, BigDecimal money, String notes, Long userId, String userName);

    /**
     * 结清物流账单
     * @param bo
     * @param payOrderVO
     * @param userId
     * @param userName
     */
    void saveLogisticsPayBillMoney(PayOrderSaveBO bo, PayOrderVO payOrderVO, Long shopId, Long userId, String userName);

    /**
     * 修改保证金
     * @param shopId
     * @param money
     * @return
     */
    Result updateMguaranteeMoneyQuota(Long shopId, BigDecimal money, Long userId, String userName);
}
